package com.twm.zkclient;

import org.I0Itec.zkclient.IZkChildListener;
import org.I0Itec.zkclient.ZkClient;

import java.util.List;

/**
 * 借助zkClient完成会话的创建
 */
public class GetNoteChildren {
    public static void main(String[] args) throws InterruptedException {
        /*
            创建爱你一个zkClient实例就可以完成连接， 完成会话的创建
         */
        ZkClient zkClient = new ZkClient("127.0.0.1:2181");
        System.out.println("会话被创建了");

//        List<String> children = zkClient.getChildren("/ghc-zkclient");
//        System.out.println("children: " + children);

        //注册监听事件
        /*
        客户端可以对一个不存在的节点进行子节点变更的监听
        只要该节点的子节点列表。 或者该节点本身被创建或者删除 都会触发监听
         */
        zkClient.subscribeChildChanges("/ghc-zkclient-get", new IZkChildListener() {
            /*
            s: parentPath
            list: 变化后子节点列表
             */
            public void handleChildChange(String parentPath, List<String> list) throws Exception {
                System.out.println(parentPath + "的子节点列表发生了变化， 变化后的字列表为： " + list);
            }
        });

//        zkClient.createPersistent("/ghc-zkclient-get");
//        Thread.sleep(1000);

//        zkClient.createPersistent("/ghc-zkclient-get/127.0.0.1:8080");
//        Thread.sleep(1000);
//        zkClient.createPersistent("/ghc-zkclient-get/127.0.0.1:8081");
        Thread.sleep(Integer.MAX_VALUE);
    }
}
